<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

    <head>
        <title>Sudoku</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

        <script language="JavaScript" type="text/JavaScript">

            function getElement(ligne, colonne) {
                return document.forms["Grille"].elements["L" + ligne + "C" + colonne].value;
            }

            function setElement(ligne, colonne, valeur) {
                document.forms["Grille"].elements["L" + ligne + "C" + colonne].value = valeur;
            }

            function controleValeur(champs) {
			
                if (champs.value != "") {
                    test = champs.value.match("^[1-9]$");
                    if (test==null) {
                        alert("Uniquement valeurs numériques de 1 à 9");
                        champs.value="";
                    }
                }
            }
		
            function afficheSolution() {
                location.reload();
            }
		
            function resetTableau() {
		
                for(i=0; i<9; i++) {
                    for(j=0; j<9; j++) {
                        setElement(i, j, "");
                    }
                }
            }
		
            function alimTableauExemple1() {
		
                resetTableau();
			
                setElement(0, 0, "4");
                setElement(0, 5, "1");
                setElement(0, 6, "7");
                setElement(0, 7, "2");
                setElement(0, 8, "6");
			
                setElement(1, 8, "9");
			
                setElement(2, 1, "7");
                setElement(2, 4, "4");
                setElement(2, 6, "1");
			
                setElement(3, 2, "4");
                setElement(3, 3, "9");
                setElement(3, 6, "3");
                setElement(3, 7, "1");
			
                setElement(4, 3, "2");
                setElement(4, 5, "6");
			
                setElement(5, 1, "5");
                setElement(5, 2, "3");
                setElement(5, 5, "4");
                setElement(5, 6, "8");
			
                setElement(6, 2, "7");
                setElement(6, 4, "6");
                setElement(6, 7, "4");
			
                setElement(7, 0, "3");
			
                setElement(8, 0, "2");
                setElement(8, 1, "9");
                setElement(8, 2, "1");
                setElement(8, 3, "4");
                setElement(8, 8, "5");
            }
		
            function alimTableauExemple2() {
			
                resetTableau();
			
                setElement(0, 1, "2");
                setElement(0, 4, "5");
                setElement(0, 6, "1");
			
                setElement(1, 1, "5");
                setElement(1, 2, "3");
                setElement(1, 4, "6");
			
                setElement(2, 0, "6");
                setElement(2, 5, "4");
			
                setElement(3, 5, "6");
                setElement(3, 7, "3");
                setElement(3, 8, "8");
			
                setElement(4, 3, "5");
                setElement(4, 4, "7");
                setElement(4, 5, "2");
			
                setElement(5, 0, "2");
                setElement(5, 1, "1");
                setElement(5, 3, "8");
			
                setElement(6, 3, "3");
                setElement(6, 8, "7");
			
                setElement(7, 4, "9");
                setElement(7, 6, "4");
                setElement(7, 7, "6");
			
                setElement(8, 2, "1");
                setElement(8, 4, "4");
                setElement(8, 7, "9");
            }
		
        </script>
    </head>

    <body>
        <form action="#" name="Grille">
            <table>

                <!-- Génération dynamique de la grille de saisie Sudoku -->
                <script language="JavaScript" type="text/JavaScript">
                    for(i = 0; i<9; i++) {
                        if ((i%3==0) && i!=0) document.write('<tr></tr><tr></tr><tr></tr>');
                        document.write('<tr>');
                        for(j = 0; j<9; j++) {
                            if ((j%3==0) && j!=0) document.write('<td></td><td></td><td></td>');
                            document.write('<td>');
                            document.write('<input name="L' + i + 'C' + j + '" type="text" onkeyup="controleValeur(this)" size="1" maxlength="1"/>');
                            document.write('</td>');
                        }
                        document.write('</tr>');
                    }
                </script>

            </table>
            <input type="button" value="Reset" onClick="resetTableau()" />
            <input type="button" value="Solution" onClick="afficheSolution()" />
            <input type="button" value="Exemple1" onClick="alimTableauExemple1()" />
            <input type="button" value="Exemple2" onClick="alimTableauExemple2()" />
        </form>

        <applet code="fr/cdesire/sudoku/applet/GrilleSudoku" archive="sudoku-applet/target/sudoku-applet-0.4.jar, sudoku-resolver/target/sudoku-resolver-0.4.jar"
                width="300" height="50" />

    </body>

</html>
